#ifndef _SERVER_H_
#define _SERVER_H_

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/types.h>
#include <arpa/inet.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <sys/epoll.h>
#include <pthread.h>
#include <strings.h>
#include <sqlite3.h>
#include <time.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <sqlite3.h>
#include "sqlite_car.h"

#define PORT 8080  		//端口号
#define IP "172.25.4.221"
#define SIZE 100
#define MAX_EVENTS 100 		//epoll监听队列大小

/*
函数名：socket_init
函数功能：初始化套接字描述符
函数参数：short port:端口号
	　char * ip:ip地址
函数返回值：成功返回套接字描述符，失败返回-1
*/
int socket_init(short port, char* ip);

/*
函数名：accept_link
函数功能：接收客户端连接请求
函数参数：int socket_id:套接字描述符
	  int epollfd:epoll监听链表
函数返回值：成功返回０,失败返回-1
*/
int accept_link(int socket_id, int epollfd);

/*
函数名：communication
函数功能：通信
函数参数：int connect_id:通信套接字描述符
	  int epollfd:epoll监听链表
函数返回值：成功返回０,失败返回-1
*/
int communication(int connect_id, int epollfd);

/*
函数名：do_work
函数功能：线程处理函数
函数参数：void * arg
函数返回值：void *
*/
void * do_work(void * arg);

/*
函数名：net_cloud
函数功能：与电信云平台通信
函数参数：char * data:传输的数据
函数返回值：成功返回０，失败返回-1
*/
int net_cloud(char * data);



#endif
